# import graphlab

# # SFrame 不仅可以读内存的数据，还可以硬盘里的数据
# sf = graphlab.SFrame('test.csv')

# sf.head

# sf.tail


# # 定义函数的两种方式
# def sum(x,y):
#     z = x + y
#     return z

# square = lambda x : x*x
# print(square(9))

# 表示 5的三次方
square1 = 5 ** 3
print(square1)


# 除不尽取整
division = 17 // 5
print(division)

# 上一次打印出来的表达式 会被赋值给内置变量  _
4*3.75 -1
print(_)

# 在python中，单引号' 和双引号" 没特别明显的区别;反斜杠\是用来转义的
print('"Isn\'t," they said.')
print('First line.\nSecond line.')

# 如果不希望前置了\的字符转义成特殊字符，就用【原始字符方式】
print('C:\my\name')
print(r'C:\my\name')

# 切片 slice
word = "python"
word[0]
word[5]
word[0:2]

word[-1]
word[-6]
word[2:5]
word[:3] + word[3:]

# 列表
squares = [2,3,5,7,11,13]
squares[:2]
squares[2:4]
squares + [17,19,23]

# 斐波那契数列 
# 循环体里面要有缩进，一个tab；循环体结束，要打一个空白行
a,b = 0,1
# python 跟C一样，任何非零整数都为true，0为false； 当然字符串和数组也可以，事实上任何序列都可以；长度非零就为true，长度为零就为false
# 关键字end=,可以取消掉输出后面的换行，以另外一个指定的字符来结尾
while a < 10:
    # print(a)
    # print("-------------------------------------------------")
    print(a, end= ',')
    a, b = b, a+b

# print 函数可以处理多个参数，包括多个字符串或者浮点数；字符串会打印不带引号的内容，并且会跟参数之间插入一个空格，这样就可以很好的把内容格式化
pai = 3.1415926
print("The value of pai is", pai)

number = int(input("please input your prefer number:"))
if number < 0:
    number = 0
    print('negative change to zero')
elif number == 0:
    print('zero')
elif number == 1:
    print('single')
else:
    print('more')   

# for 循环
words = ['cat', 'window', 'defenestrate']
for w in words:
    print(w,len(w),end=",")

# 如果要在循环里修改序列里的某些值，推荐先copy出来一份副本；如果直接使用for w in words, 这个例子中就会创建出无限长
for w in words[:]:
    if len(w)>10:
        words.insert(0,'tiger')
    print(w,len(w))   

# 如果要遍历数字序列，使用内置函数range比较合适
for i in range(6):
    print(i)   

# 半开半闭的区间，从5~9
for i in range(5,10):
    print(i)

# 2为步进器。结果为 5,7,9
for i in range(5,10,2):
    print(i)   

# enumerate函数 

# range()返回的对象在许多方面表现得像一个列表，但事实上不是；
# 此对象会在它迭代的时候基于所希望的序列返回连续的值，但没有真正生成列表，比较节省空间
# 这样的对象，就是可迭代的

# list 可以把可迭代对象转变为列表
for i in list(range(10)):
    print(i)


for n in range(2,10):
    for x in range(2,n):
        print(n,x)

if __name__ == '__main_':
    print(square(6))